home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 7 / FM Towns Free Software Collection 7.iso / t_os / cd_mogi / cd_mogi.bas next >
BASIC Source File  |  1993-11-30  |  18KB  |  451 lines

  1. 10 *BAT
  2. 20 RANDOMIZE TIME:GOSUB *初期設定:GOSUB *SUGI:GOTO *画面作成
  3. 30 *初期設定
  4. 40 DIM MOVE%(80000),DOM%(7200),RD%(50),CDT1%(50),CDT2%(50),INF%(5),STAT%(8),STA%(8):ON ERROR GOTO 2630:EKI=0:KAS=0:DAI%=0:COL=0:REPEOFF=0:NAN%=0:A=1:D=0:GOSUB *CDDA:RETURN
  5. 50 *CDDA
  6. 60 CD STOP
  7. 70 CDINF INF%
  8. 80 IF SASI=101 AND INF%(1)=2 THEN GOSUB *DATATORAC:GOTO 2810
  9. 90 IF INF%(1)=2 THEN GOSUB *DATATORAC:GOTO *BAT
  10. 100 IF INF%(1)=1 THEN SM%=1 ELSE SM%=2
  11. 110 IF SASI=101 AND INF%(1)=2 THEN GOSUB *DATATORAC:GOTO 2810
  12. 120 IF INF%(1)=2 THEN GOSUB *DATATORAC:GOTO *BAT
  13. 130 LA%=INF%(5)
  14. 140 CN%=SM%
  15. 150 GOSUB *CDCHEK:RETURN
  16. 160 *画面作成
  17. 170 CLS:SCREEN@2
  18. 180 LOAD@ "A:\CD_MOGI.TIF":GOSUB 190:GOSUB *CDDATA:GOTO 380
  19. 190 IF INF%(1)=1 THEN A$="CD(音楽用)"
  20. 200 IF INF%(1)=3 THEN A$="CD+DATA"
  21. 210 SYMBOL (128,130),A$,1,1,0
  22. 220 SYMBOL (120,220),STR$(INF%(5))+"曲",1,1,0
  23. 230 SYMBOL (120,250),STR$(INF%(2))+"分"+STR$(INF%(3))+"秒",1,1,0:RETURN
  24. 240 *CDDATA
  25. 250 GET@A (0,280)-(359,299),DOM%
  26. 260 IF SM%=2 THEN SYMBOL(100,282),"デ-タトラックです演奏できません",1,1,0
  27. 270 IF LA%>10 THEN HH%=10 ELSE HH%=LA%
  28. 280 FOR I=1 TO HH%
  29. 290 HH$=STR$(I)
  30. 300 IF I<10 THEN H=5 ELSE H=0
  31. 310 SYMBOL (H,262+I*20),HH$,1,1,0
  32. 320 CDTIME$=STR$(CDT1%(I))+":"+STR$(CDT2%(I)) 
  33. 330 IF CDT1%(I)<10 THEN CDTIME$=" "+CDTIME$
  34. 340 IF CDT2%(I)<10 THEN GOSUB *PURAS
  35. 350 IF CDT1%(I)<10 AND CDT2%(I)<10 THEN CDTIME$=" "+CDTIME$
  36. 360 SYMBOL (30,262+I*20),CDTIME$,1,1,0
  37. 370 NEXT I:NAN%=0:RETURN
  38. 380 PUT@A (572,349)-(588,381),SUGI%,,,,,0
  39. 390 PUT@A (588,349)-(604,381),SUGI%,,,,,CN%*300
  40. 400 PUT@A (510,394)-(526,426),SUGI%,,,,,0
  41. 410 PUT@A (527,394)-(543,426),SUGI%,,,,,CN%*300
  42. 420 PUT@A (548,394)-(564,426),SUGI%,,,,,0
  43. 430 PUT@A (565,394)-(581,426),SUGI%,,,,,0
  44. 440 PUT@A (586,394)-(602,426),SUGI%,,,,,0
  45. 450 PUT@A (603,394)-(619,426),SUGI%,,,,,0
  46. 460 MOUSE 0:MOUSE 1,320,240,1
  47. 470 *MAIN
  48. 480 CDSTAT STAT%
  49. 490 IF STAT%(1)=1 THEN GOSUB *を
  50. 500 IF MOUSE(2,0)=-1 GOTO 550
  51. 510 IF RE%=0 OR REPEOFF=0 THEN GOTO *MAIN
  52. 520 IF RE%=2 GOTO *ALLRE
  53. 523 IF A=LA%+1 THEN A=SM%-1
  54. 525 IF STAT%(1)=0 AND RE%=3 THEN A=A+1:H=CN%:CN%=RD%(A):GOSUB *WORLD:GOSUB *USESUGI:GOSUB *MMLI:CD PLAY CN%:GOTO *MAIN
  55. 530 IF STAT%(1)=0 AND RE%=1 THEN CD PLAY CN%:GOSUB *MMLI:LTIME=TIME
  56. 540 GOTO *MAIN
  57. 550 R=MOUSE(4,0):L=MOUSE(5,0)
  58. 560 IF L<280 GOTO *MAIN
  59. 570 IF R>=0 AND R<=359 AND L=>280 THEN GOSUB *CDNPLAY:GOTO *MAIN
  60. 580 IF R>=360 AND R<=379 THEN GOSUB *MMOV:GOTO *MAIN
  61. 590 IF L>=290 AND L<=339 GOTO *CONTROL
  62. 600 IF L>=345 AND L<=384 GOTO *ELSE
  63. 610 IF L>=390 AND L<=429 GOTO *END
  64. 620 IF L>=435 AND L<=469 GOTO *CD
  65. 630 GOTO 500
  66. 640 *CONTROL
  67. 650 IF R>=405 AND R<=513 GOTO *PLAY
  68. 660 IF R>=515 AND R<=623 GOTO *STOP
  69. 670 GOTO 500
  70. 680 *PLAY
  71. 690 IF COL=0 THEN LINE(405,290)-(513,339),XOR,,BF:COL=1
  72. 700 IF NAN%=0 THEN NAN%=CN%-DAI%:LINE (0,260+20*NAN%)-(359,279+20*NAN%),XOR,,BF
  73. 710 CD PLAY CN%:REPEOFF=1
  74. 720 GOSUB *MMLI:LTIME=TIME:GOTO *MAIN
  75. 730 *STOP
  76. 740 LINE(515,290)-(623,339),XOR,,BF
  77. 750 CD STOP:REPEOFF=0:STO%=1:GOSUB *MMLI
  78. 760 GOSUB 1390:NAN%=0
  79. 770 LINE(515,290)-(623,339),XOR,,BF:LTIME=TIME
  80. 780 IF COL=1 THEN GOTO 790 ELSE GOTO *MAIN
  81. 790 LINE(405,290)-(513,339),XOR,,BF:COL=0:LTIME=TIME:GOTO 500
  82. 800 *ELSE
  83. 810 IF R>=405 AND R<=453 GOTO *PAUSE
  84. 820 IF R>=455 AND R<=503 THEN GOSUB *LAST:GOTO *MAIN
  85. 830 IF R>=505 AND R<=553 THEN GOSUB *NEXT:GOTO *MAIN
  86. 840 GOTO 500
  87. 850 *END
  88. 860 IF R>=405 AND R<=453 GOTO *EXIT
  89. 870 IF R>=455 AND R<=503 THEN GOSUB *REPE
  90. 880 GOTO *MAIN
  91. 890 *EXIT
  92. 900 LINE(405,390)-(453,429),XOR,,BF:LINE (8,103)-(631,119),PSET,0,BF:SYMBOL (264,103),"ばいばい(T^T/)",1,1,[255,255,0]:CD STOP:END
  93. 910 *REPE
  94. 915 IF RE%=3 THEN I=0:GOSUB 4320:RE%=1:I=20:GOTO 950
  95. 920 IF RE%=2 THEN I=0:GOSUB 1120:RE%=1:I=20:GOTO 950
  96. 930 IF RE%=0 THEN I=20:RE%=1:GOTO 950
  97. 940 IF RE%=1 THEN RE%=0:I=20:GOTO 950
  98. 950 LINE(455,390)-(503,429),XOR,,BF:WAIT I
  99. 960 LTIME=TIME:RETURN
  100. 970 *CD
  101. 980 IF R=>405 AND R=<453 THEN GOSUB *RND:GOTO *MAIN
  102. 990 IF R=>455 AND R=<503 THEN GOSUB *ALL
  103. 1000 GOTO *MAIN
  104. 1010 LINE(405,435)-(453,469),XOR,,BF
  105. 1020 GOSUB *RND
  106. 1030 *PAUSE
  107. 1040 IF PA%=0 THEN PA%=1:GOTO 1060
  108. 1050 IF PA%=1 THEN PA%=0:GOTO 1070
  109. 1060 LINE(405,345)-(453,384),XOR,,BF:CD PAUSE:REPEOFF=0:WAIT 20:GOTO *MAIN
  110. 1070 CD CONT:LINE(405,345)-(453,384),XOR,,BF:WAIT 20:REPEOFF=1:GOTO *MAIN
  111. 1080 *ALL
  112. 1090 IF RE%=0 THEN I=20:RE%=2:GOTO 1120
  113. 1100 IF RE%=2 THEN RE%=0:I=20:GOTO 1120
  114. 1110 IF RE%=1 THEN I=0:GOSUB 950:I=20:RE%=2:GOTO 1120
  115. 1115 IF RE%=3 THEN I=0:GOSUB 4320:I=20:RE%=2:GOTO 1120
  116. 1120 LINE(455,435)-(503,469),XOR,,BF:WAIT I:RETURN
  117. 1130 *CDNPLAY
  118. 1140 HAGI%=NAN%:KO=REPEOFF
  119. 1150 REPEOFF=1:STO%=0
  120. 1160 IF NAN%=0 GOTO 1190
  121. 1170 TAKO%=CN%
  122. 1180 REPEOFF=1
  123. 1190 IF L>=260 AND L>=279 THEN NAN%=1
  124. 1200 IF L>=280 AND L>=299 THEN NAN%=2
  125. 1210 IF L>=300 AND L>=319 THEN NAN%=3
  126. 1220 IF L>=320 AND L>=339 THEN NAN%=4
  127. 1230 IF L>=340 AND L>=359 THEN NAN%=5
  128. 1240 IF L>=360 AND L>=379 THEN NAN%=6
  129. 1250 IF L>=380 AND L>=399 THEN NAN%=7
  130. 1260 IF L>=400 AND L>=419 THEN NAN%=8
  131. 1270 IF L>=420 AND L>=439 THEN NAN%=9
  132. 1280 IF L>=440 AND L>=459 THEN NAN%=10
  133. 1290 IF INF%(1)=3 AND NAN%=1 AND DAI%=0 THEN NAN%=HAGI%:GOTO *MAIN
  134. 1300 IF NAN%=0 GOTO *MAIN
  135. 1310 ONAGI%=0
  136. 1320 IF TAKO%=NAN%+DAI% THEN ONAGI%=1
  137. 1330 IF NAN%>LA% THEN NAN%=HAGI%:GOTO *MAIN
  138. 1340 IF ONAGI%=1 THEN GOTO 1420
  139. 1350 IF HAGI%=0 GOTO 1380
  140. 1360 IF CN%-DAI%=>11 OR CN%=<DAI% OR KO=0 GOTO 1380
  141. 1370 LINE (0,260+HAGI%*20)-(359,279+HAGI%*20),XOR,,BF
  142. 1380 CN%=DAI%+NAN%:CD PLAY CN%
  143. 1390 LINE (0,260+NAN%*20)-(359,279+NAN%*20),XOR,,BF
  144. 1400 CN$=STR$(CN%)
  145. 1410 IF CN%<10 THEN CN$=" "+CN$
  146. 1420 GOSUB *USESUGI:LTIME=TIME:RETURN
  147. 1430 *MOVE
  148. 1440 IF DAI%+10=LA% THEN GOTO *MAIN
  149. 1450 DAI%=DAI%+1:NAN%=NAN%-1
  150. 1460 IF NAN%<=0 THEN NAN%=0
  151. 1470 GET@A(0,300)-(359,479),MOVE%
  152. 1480 PUT@A(0,280)-(359,459),MOVE%:I=DAI%+10
  153. 1490 CDTIME$=STR$(CDT1%(DAI%+10))+":"+STR$(CDT2%(DAI%+10))
  154. 1500 IF CDT1%(DAI%+10)<10 THEN CDTIME$=" "+CDTIME$
  155. 1510 IF CDT2%(DAI%+10)<10 THEN GOSUB *PURAS
  156. 1520 IF CDT1%(DAI%+10)<10 AND CDT2%(DAI%+10)<10 THEN CDTIME$=" "+CDTIME$
  157. 1530 PUT@A (0,460)-(359,479),DOM%:SYMBOL(0,463),STR$(DAI%+10),1,1,0: SYMBOL (30,463),CDTIME$,1,1,0
  158. 1540 IF REPEOFF=0 THEN RETURN
  159. 1550 IF DAI%+10=CN% GOTO 1570
  160. 1560 RETURN
  161. 1570 LINE (0,460)-(359,479),XOR,,BF:NAN%=10:RETURN
  162. 1580 *MMOV
  163. 1590 IF L>=380 AND L=<479 AND DAI%+10<LA% GOTO 1620
  164. 1600 IF L>=280 AND L=<379 AND DAI%>0 GOTO 1640
  165. 1610 RETURN
  166. 1620 LINE (360,380)-(379,479),XOR,,BF
  167. 1630 GOSUB *MOVE: LINE (360,380)-(379,479),XOR,,BF:WAIT 20:RETURN
  168. 1640 LINE (360,280)-(379,379),XOR,,BF
  169. 1650 GOSUB *MOVEO:LINE (360,280)-(379,379),XOR,,BF:WAIT 20:RETURN
  170. 1660 *MOVEO
  171. 1670 IF DAI%=0 GOTO *MAIN
  172. 1680 DAI%=DAI%-1:NAN%=NAN%+1
  173. 1690 IF NAN%=11 THEN NAN%=0
  174. 1700 GET@A(0,280)-(359,459),MOVE%
  175. 1710 PUT@A(0,300)-(359,479),MOVE%
  176. 1720 IF DAI%+1>=10 THEN I=0 ELSE I=5
  177. 1730 PUT@A (0,280)-(359,299),DOM%
  178. 1740 SYMBOL(0+I,283),STR$(DAI%+1),1,1,0:I=DAI%+1
  179. 1750 CDTIME$=STR$(CDT1%(DAI%+1))+":"+STR$(CDT2%(DAI%+1))
  180. 1760 IF CDT1%(DAI%+1)<10 THEN CDTIME$=" "+CDTIME$
  181. 1770 IF CDT2%(DAI%+1)<10 THEN GOSUB *PURAS
  182. 1780 IF CDT2%(DAI%+1)<10 AND CDT1%(DAI%+1)<10 THEN CDTIME$=" "+CDTIME$
  183. 1790 SYMBOL (30,283),CDTIME$,1,1,0:CDINF INF%
  184. 1800 IF DAI%=0 AND INF%(1)=3 THEN GOSUB 1850
  185. 1810 IF REPEOFF=0 THEN RETURN
  186. 1820 IF DAI%+1=CN% GOTO 1840
  187. 1830 RETURN
  188. 1840 LINE (0,280)-(359,299),XOR,,BF:NAN%=1:RETURN
  189. 1850 SYMBOL(100,282),"デ-タトラックです演奏できません",1,1,0:RETURN
  190. 1860 *CDCHEK
  191. 1870 FOR I=1 TO LA%-1
  192. 1880 CDT1%(I)=VAL(KLEFT$((CDSTIME$(I+1)),2))-VAL(KLEFT$((CDSTIME$(I)),2))
  193. 1890 CDT2%(I)=VAL(KMID$((CDSTIME$(I+1)),4,2))-VAL(KMID$((CDSTIME$(I)),4,2))
  194. 1900 IF CDT2%(I)<0 THEN GOSUB *F
  195. 1910 NEXT I:GOSUB *P:RETURN
  196. 1920 *F
  197. 1930 CDT1%(I)=CDT1%(I)-1
  198. 1940 CDT2%(I)=60+CDT2%(I):RETURN
  199. 1950 *P
  200. 1960 CDT1%(LA%)=INF%(2)-VAL(KLEFT$((CDSTIME$(LA%)),2))
  201. 1970 CDT2%(LA%)=INF%(3)-VAL(KMID$((CDSTIME$(LA%)),4,2))
  202. 1980 IF CDT2%(INF%(5))<0 THEN GOSUB *U:RETURN
  203. 1990 RETURN
  204. 2000 *U
  205. 2010 CDT1%(INF%(5))=CDT1%(INF%(5))-1
  206. 2020 CDT2%(INF%(5))=60+CDT2%(INF%(5)):RETURN
  207. 2030 *LAST
  208. 2040 IF CN%=SM% THEN RETURN
  209. 2050 REPEOFF=1:H=CN%:CN%=H-1:
  210. 2060 IF STO%=1 THEN STO%=0:NAN%=CN%-DAI%+1:LINE(455,345)-(503,384),XOR,,BF:GOSUB 2160:GOTO 2110
  211. 2070 LINE(455,345)-(503,384),XOR,,BF
  212. 2080 IF CN%=>DAI%+1 AND CN%=<DAI%+11 THEN GOSUB *KAKIKAE1:GOTO 2110
  213. 2090 IF H=DAI%+1 THEN GOSUB *KAKIKAE2:GOTO 2110
  214. 2100 GOSUB *KAKIKAE3
  215. 2110 GOSUB *USESUGI
  216. 2120 LINE(455,345)-(503,384),XOR,,BF 'LAST
  217. 2130 LTIME=TIME:RETURN
  218. 2140 *KAKIKAE1
  219. 2150 LINE (0,260+20*NAN%)-(359,279+20*NAN%),XOR,,BF
  220. 2160 CD PLAY CN%
  221. 2170 LINE (0,260+20*(NAN%-1))-(359,279+20*(NAN%-1)),XOR,,BF:NAN%=NAN%-1
  222. 2180 RETURN
  223. 2190 *KAKIKAE2
  224. 2200 LINE(0,280)-(359,299),XOR,,BF
  225. 2210 CD PLAY CN%
  226. 2220 GOSUB *MOVEO
  227. 2230 NAN%=1:RETURN
  228. 2240 *KAKIKAE3
  229. 2250 J=DAI%+1-CN%
  230. 2260 FOR I=1 TO J
  231. 2270 GOSUB *MOVEO
  232. 2280 NEXT I
  233. 2290 RETURN
  234. 2300 *NEXT
  235. 2310 IF CN%=LA% THEN RETURN
  236. 2320 REPEOFF=1:H=CN%:CN%=H+1
  237. 2330 IF STO%=1 THEN STO%=0:NAN%=CN%-DAI%-1:LINE(505,345)-(553,384),XOR,,BF:GOSUB 2430:GOTO 2380
  238. 2340 LINE(505,345)-(553,384),XOR,,BF 'NEXT
  239. 2350 IF H=SM% AND NAN%=0 AND DAI%=0 THEN NAN%=SM%:GOSUB 2430:GOTO 2380
  240. 2360 IF CN%=>DAI%+1 AND CN%=<DAI%+10 THEN GOSUB *KAKI1:GOTO 2380
  241. 2370 IF H=DAI%+10 THEN GOSUB *KAKI2:GOTO 2380
  242. 2380 LINE(505,345)-(553,384),XOR,,BF 'NEXT
  243. 2390 GOSUB *USESUGI
  244. 2400 LTIME=TIME:RETURN
  245. 2410 *KAKI1
  246. 2420 LINE (0,260+20*NAN%)-(359,279+20*NAN%),XOR,,BF
  247. 2430 CD PLAY CN%
  248. 2440 IF H=LA% AND CN%=SM% AND DAI%+1=<SM% THEN NAN%=SM%-DAI%-1
  249. 2450 LINE (0,260+20*((CN%-DAI%)))-(359,279+20*((CN%-DAI%))),XOR,,BF:NAN%=CN%-DAI%:RETURN
  250. 2460 *KAKI2
  251. 2470 LINE (0,460)-(359,479),XOR,,BF
  252. 2480 CD PLAY CN%
  253. 2490 GOSUB *MOVE
  254. 2500 RETURN
  255. 2510 *ALLRE
  256. 2520 CDSTAT STAT%:H=CN%
  257. 2530 IF STAT%(1)=1 GOTO *MAIN
  258. 2540 IF CN%=LA% THEN CN%=SM%-1
  259. 2550 CN%=CN%+1
  260. 2560 IF CN%=SM% AND DAI%=<SM%-1 AND LA%-DAI%=<10 THEN GOSUB *FAS:GOSUB 2390:CD PLAY CN%:GOTO *MAIN
  261. 2565 IF H=DAI%+10 THEN GOSUB *KAKI2:GOSUB 2390:GOTO *MAIN
  262. 2570 IF CN%=>DAI%+2 AND CN%=<DAI%+10 THEN GOSUB *KAKI1:GOSUB 2390:GOTO *MAIN
  263. 2580 IF CN%=>DAI%+12 OR CN%=<DAI% THEN GOSUB 2390:CD PLAY CN%:GOTO *MAIN
  264. 2590 IF CN%=>DAI%+1 THEN GOSUB 2430:GOSUB 2390:GOTO *MAIN
  265. 2600 IF H=LA% AND DAI%=H-(11-SM%) THEN GOSUB *KAKI1:GOSUB 2390:GOTO *MAIN
  266. 2610 IF H=DAI%+10 THEN GOSUB *KAKI2:GOSUB 2390:GOTO *MAIN
  267. 2620 IF H=LA% AND LA%=<DAI%+10 THEN LINE(0,260+20*(LA%-DAI%))-(359,279+(LA%-DAI%)),XOR,,BF:GOSUB 2390:GOTO *MAIN
  268. 2630 *ERROR
  269. 2640 IF ERR=53 THEN GOTO 2650 ELSE RESUME NEXT
  270. 2650 IF EKI=1 GOTO 2670
  271. 2660 LINE (8,103)-(631,119),PSET,0,BF:SYMBOL (200,103),"CDを入れてくださ-い(T_T)",1,1,[0,255,0]:EKI=1
  272. 2670 RESUME *CDCHENGI
  273. 2680 *CDCHENGI
  274. 2690 CDINF INF%
  275. 2700 *PLAYING
  276. 2710 LINE (120,130)-(300,274),PSET,[255,100,255],BF
  277. 2720 LINE (8,103)-(631,119),PSET,0,BF
  278. 2730 SYMBOL (264,103),"どもども(^_^;)",1,1,[255,255,0]
  279. 2740 FOR I=1 TO 10
  280. 2750 PUT@A (0,260+I*20)-(359,279+I*20),DOM%
  281. 2760 NEXT I
  282. 2770 ON RE% GOSUB *REPE,*ALL,*RND
  283. 2780 IF COL=1 THEN LINE(405,290)-(513,339),XOR,,BF
  284. 2790 IF PA%=1 THEN LINE(405,345)-(453,384),XOR,,BF
  285. 2800 LINE (558,348)-(620,381),PSET,0,BF
  286. 2810 SASI=101:GOSUB *初期設定:LINE (8,103)-(631,119),PSET,0,BF:GOSUB 190:GOSUB 250:GOSUB *USESUGI:GOTO 460
  287. 2820 *DATATORAC
  288. 2830 SCREEN@ 2:MOUSE 0:MOUSE 1,,,1:GET@A (120,180)-(500,290),MOVE%
  289. 2840 FOR I=0 TO 180 STEP 4
  290. 2850 LINE (319-I,239-I/4)-(320+I,240+I/4),PSET,[255,255,255],BF
  291. 2860 LINE (319-I,239-I/4)-(320+I,240+I/4),PSET,[255,0,255],B
  292. 2870 NEXT I
  293. 2880 IF INF%(1)=2 THEN SYMBOL (156,200),"このCDはデ-タトラックしかないぞ-(;_;)",1,1,0:SYMBOL (161,230),"新しいCDをいれて「確認」のボタンを押して",1,1,[0,255,0]:SYMBOL (304,260),"確認",1,1,0:LINE (300,256)-(340,280),XOR,,B
  294. 2890 IF MOUSE(2,0)=-1 AND MOUSE(4,0)=>300 AND MOUSE(4,0)=<340 AND MOUSE(5,0)=>256 AND MOUSE(5,0)=<280 THEN LINE (300,256)-(340,280),XOR,,BF:PUT@A (120,180)-(500,290),MOVE%:RETURN
  295. 2900 GOTO 2890
  296. 2910 *READCDL
  297. 2920 OPEN"E:\NAGAE\CD_PLAY.CDL" FOR INPUT AS #1
  298. 2930 INPUT #1,MCD%
  299. 2940 FOR J=1 TO MCD%
  300. 2950 INPUT #1,KUHAKU$,KYOKU$(J),ARTIST$(J),KUHAKU$,KUHAKU$,MKYOKU%(J)
  301. 2960 PRINT KYOKU$(J);ARTIST$(J);MKYOKU%(J)
  302. 2970 FOR I=1 TO MKYOKU%(J)
  303. 2980 INPUT #1,UTATIME$(I):PRINT UTATIME$(I)
  304. 2990 NEXT I:END
  305. 3000 *PURAS
  306. 3010 IF CDT2%(I)=0 THEN CDTIME$=STR$(CDT1%(I))+":"+" 00":RETURN
  307. 3020 IF CDT2%(I)=1 THEN CDTIME$=STR$(CDT1%(I))+":"+" 01":RETURN
  308. 3030 IF CDT2%(I)=2 THEN CDTIME$=STR$(CDT1%(I))+":"+" 02":RETURN
  309. 3040 IF CDT2%(I)=3 THEN CDTIME$=STR$(CDT1%(I))+":"+" 03":RETURN
  310. 3050 IF CDT2%(I)=4 THEN CDTIME$=STR$(CDT1%(I))+":"+" 04":RETURN
  311. 3060 IF CDT2%(I)=5 THEN CDTIME$=STR$(CDT1%(I))+":"+" 05":RETURN
  312. 3070 IF CDT2%(I)=6 THEN CDTIME$=STR$(CDT1%(I))+":"+" 06":RETURN
  313. 3080 IF CDT2%(I)=7 THEN CDTIME$=STR$(CDT1%(I))+":"+" 07":RETURN
  314. 3090 IF CDT2%(I)=8 THEN CDTIME$=STR$(CDT1%(I))+":"+" 08":RETURN
  315. 3100 IF CDT2%(I)=9 THEN CDTIME$=STR$(CDT1%(I))+":"+" 09":RETURN
  316. 3110 *FAS
  317. 3120 LINE (0,260+20*LA%)-(359,279+20*LA%),XOR,,BF:LINE (0,260+20*(SM%-DAI%))-(359,279+20*(SM%-DAI%)),XOR,,BF:NAN%=SM%-DAI%:RETURN
  318. 3130 *SUGI
  319. 3140 DIM SUGI%(3000)
  320. 3150 SCREEN@2:LINE (0,0)-(16,32),PSET,0,BF
  321. 3160 GOSUB *I0:GET@A (0,0)-(16,32),SUGI%,0
  322. 3170 LINE (0,0)-(16,32),PSET,0,BF
  323. 3180 GOSUB *I1:GET@A (0,0)-(16,32),SUGI%,300
  324. 3190 LINE (0,0)-(16,32),PSET,0,BF
  325. 3200 GOSUB *I2:GET@A (0,0)-(16,32),SUGI%,600
  326. 3210 LINE (0,0)-(16,32),PSET,0,BF
  327. 3220 GOSUB *I3:GET@A (0,0)-(16,32),SUGI%,900
  328. 3230 LINE (0,0)-(16,32),PSET,0,BF
  329. 3240 GOSUB *I4:GET@A (0,0)-(16,32),SUGI%,1200
  330. 3250 LINE (0,0)-(16,32),PSET,0,BF
  331. 3260 GOSUB *I5:GET@A (0,0)-(16,32),SUGI%,1500
  332. 3270 LINE (0,0)-(16,32),PSET,0,BF
  333. 3280 GOSUB *I6:GET@A (0,0)-(16,32),SUGI%,1800
  334. 3290 LINE (0,0)-(16,32),PSET,0,BF
  335. 3300 GOSUB *I7:GET@A (0,0)-(16,32),SUGI%,2100
  336. 3310 LINE (0,0)-(16,32),PSET,0,BF
  337. 3320 GOSUB *I8:GET@A (0,0)-(16,32),SUGI%,2400
  338. 3330 LINE (0,0)-(16,32),PSET,0,BF
  339. 3340 GOSUB *I9:GET@A (0,0)-(16,32),SUGI%,2700
  340. 3350 LINE (0,0)-(16,32),PSET,0,BF:RETURN
  341. 3360 *I0
  342. 3370 LINE (3,2)-(12,30),PSET,[255,0,0],B:RETURN
  343. 3380 *I1
  344. 3390 LINE (12,2)-(12,30),PSET,[255,0,0],B:RETURN
  345. 3400 *I2
  346. 3410 LINE (3,2)-(12,2),PSET,[255,0,0],B
  347. 3420 LINE (12,2)-(12,15),PSET,[255,0,0],B
  348. 3430 LINE (3,15)-(12,15),PSET,[255,0,0],B
  349. 3440 LINE (3,15)-(3,30),PSET,[255,0,0],B
  350. 3450 LINE (3,30)-(12,30),PSET,[255,0,0],B:RETURN
  351. 3460 *I3
  352. 3470 LINE (3,2)-(12,30),PSET,[255,0,0],B
  353. 3480 LINE (3,3)-(3,29),PSET,0,B
  354. 3490 LINE (3,15)-(12,15),PSET,[255,0,0],B:RETURN
  355. 3500 *I4
  356. 3510 LINE (3,2)-(12,15),PSET,[255,0,0],B
  357. 3520 LINE (4,2)-(11,2),PSET,0,B
  358. 3530 LINE (12,2)-(12,30),PSET,[255,0,0],B:RETURN
  359. 3540 *I5
  360. 3550 LINE (3,2)-(12,30),PSET,[255,0,0],B
  361. 3560 LINE (3,16)-(3,29),PSET,0,B
  362. 3570 LINE (12,3)-(12,14),PSET,0,B
  363. 3580 LINE (3,15)-(12,15),PSET,[255,0,0],B:RETURN
  364. 3590 *I6
  365. 3600 LINE (3,2)-(12,30),PSET,[255,0,0],B
  366. 3610 LINE (3,15)-(12,15),PSET,[255,0,0]
  367. 3620 LINE (12,3)-(12,14),PSET,0:RETURN
  368. 3630 *I7
  369. 3640 LINE (3,2)-(12,30),PSET,[255,0,0],B
  370. 3650 LINE (3,3)-(11,30),PSET,0,B:RETURN
  371. 3660 *I8
  372. 3670 LINE (3,2)-(12,30),PSET,[255,0,0],B
  373. 3680 LINE (3,15)-(12,15),PSET,[255,0,0]:RETURN
  374. 3690 *I9
  375. 3700 GOSUB *I8
  376. 3710 LINE (3,16)-(11,30),PSET,0,B:RETURN
  377. 3720 *USESUGI
  378. 3730 MM=0:SS=0:GOSUB *MMLI
  379. 3740 IF CN%<10 THEN GOSUB *TEN:LTIME=TIME:RETURN
  380. 3750 IF CN%<20 THEN GOSUB *TWELB:LTIME=TIME:RETURN
  381. 3760 IF CN%<30 THEN GOSUB *THIRTY:LTIME=TIME:RETURN
  382. 3770 IF CN%<40 THEN GOSUB *FORTY:LTIME=TIME:RETURN
  383. 3780 IF CN%<50 THEN GOSUB *FIFTY:LTIME=TIME:RETURN
  384. 3790 *TEN
  385. 3800 PUT@A (572,349)-(588,381),SUGI%
  386. 3810 PUT@A (588,349)-(604,381),SUGI%,,,,,CN%*300
  387. 3820 PUT@A (510,394)-(526,426),SUGI%
  388. 3830 PUT@A (527,394)-(543,426),SUGI%,,,,,CN%*300:RETURN
  389. 3840 *TWELB
  390. 3850 PUT@A (572,349)-(588,381),SUGI%,,,,,300
  391. 3860 PUT@A (527,394)-(543,426),SUGI%,,,,,(CN%-10)*300
  392. 3870 PUT@A (588,349)-(604,381),SUGI%,,,,,(CN%-10)*300
  393. 3880 PUT@A (510,394)-(526,426),SUGI%,,,,,300:RETURN
  394. 3890 *THIRTY
  395. 3900 PUT@A (510,394)-(526,426),SUGI%,,,,,600
  396. 3910 PUT@A (527,394)-(543,426),SUGI%,,,,,(CN%-20)*300
  397. 3920 PUT@A (572,349)-(588,381),SUGI%,,,,,600
  398. 3930 PUT@A (588,349)-(604,381),SUGI%,,,,,(CN%-20)*300:RETURN
  399. 3940 *FORTY
  400. 3950 PUT@A (510,394)-(526,426),SUGI%,,,,,900
  401. 3960 PUT@A (527,394)-(543,426),SUGI%,,,,,(CN%-30)*300
  402. 3970 PUT@A (572,349)-(588,381),SUGI%,,,,,900
  403. 3980 PUT@A (588,349)-(604,381),SUGI%,,,,,(CN%-30)*300:RETURN
  404. 3990 *FIFTY
  405. 4000 PUT@A (527,394)-(543,426),SUGI%,,,,,(CN%-40)*300
  406. 4010 PUT@A (510,394)-(526,426),SUGI%,,,,,1200
  407. 4020 PUT@A (572,349)-(588,381),SUGI%,,,,,1200
  408. 4030 PUT@A (588,349)-(604,381),SUGI%,,,,,(CN%-40)*300:RETURN
  409. 4040 *を
  410. 4050 IF TIME<>LTIME THEN LTIME=TIME:GOTO 4070
  411. 4060 RETURN
  412. 4070 SS=SS+1
  413. 4080 IF SS=60 THEN SS=0:MM=MM+1:GOSUB 4090:GOTO 4170
  414. 4090 IF SS<10 THEN I=0:GOTO 4150
  415. 4100 IF SS<20 THEN I=1:GOTO 4150
  416. 4110 IF SS<30 THEN I=2:GOTO 4150
  417. 4120 IF SS<40 THEN I=3:GOTO 4150
  418. 4130 IF SS<50 THEN I=4:GOTO 4150
  419. 4140 IF SS<60 THEN I=5
  420. 4150 PUT@A (603,394)-(619,426),SUGI%,,,,,(SS-I*10)*300
  421. 4160 PUT@A (586,394)-(602,426),SUGI%,,,,,I*300:RETURN
  422. 4170 IF MM<10 THEN I=0:GOTO 4210
  423. 4180 IF MM<20 THEN I=1:GOTO 4210
  424. 4190 IF MM<30 THEN I=2:GOTO 4210
  425. 4200 IF MM<40 THEN I=3
  426. 4210 PUT@A (565,394)-(581,426),SUGI%,,,,,(MM-I*10)*300
  427. 4220 PUT@A (548,394)-(564,426),SUGI%,,,,,I*300:RETURN
  428. 4230 *MMLI
  429. 4240 PUT@A (565,394)-(581,426),SUGI%
  430. 4250 PUT@A (548,394)-(564,426),SUGI%:MM=0:SS=0:LTIME=TIME:RETURN
  431. 4260 *RND
  432. 4262 IF RE%=1 THEN I=0:GOSUB 950:RE%=0:GOTO 4265
  433. 4263 IF RE%=2 THEN I=0:GOSUB 1120:RE%=0:GOTO 4265
  434. 4264 IF RE%=3 THEN I=20:GOSUB 4320:RE%=0:RETURN
  435. 4265 IF RE%=0 THEN I=20:A=SM%-1:HH%=0:RE%=3:LINE(405,435)-(453,469),XOR,,BF:WAIT 15:GOTO 4270
  436. 4270 FOR J=SM% TO LA%
  437. 4280 RD%(J)=INT(RND*LA%)+1
  438. 4285 IF INF%(1)=3 AND RD%(J)=1 THEN GOTO 4280
  439. 4290 IF RD%(J)=RD%(HH%) THEN GOTO 4280
  440. 4300 IF HH%=J-1 THEN HH%=1:NEXT J:RETURN
  441. 4310 HH%=HH%+1:GOTO 4290
  442. 4320 LINE(405,435)-(453,469),XOR,,BF:WAIT I:RETURN
  443. 4330 *WORLD
  444. 4340 IF NAN%=0 THEN GOTO 4360
  445. 4350 LINE (0,260+20*NAN%)-(359,279+20*NAN%),XOR,,BF:NAN%=0
  446. 4360 IF CN%>DAI%+10 OR CN%=<DAI%+1 THEN RETURN
  447. 4370 LINE (0,260+20*(CN%-DAI%))-(359,279+20*(CN%-DAI%)),XOR,,BF:NAN%=CN%-DAI%:RETURN
  448. 4400 *PRIN
  449. 4410 SCREEN@0
  450. 4420 MOUSE 1,320,240,1
  451.